MOVEDATA

      
#include <memory.h>     Требуется только для об-
#include <string.h>     явления  функции, использует
               либо <string.h>,  либо
               <memory.h>
  
void movedata (srcseg,  srcoff,  destseg,  destoff, nbytes);
int srcseg;        адрес исходного сегмента
int srcoff;        смещение исходного сегмента
int destseg;       адрес результирующего сегмента
int destoff;       смещение  результирующего сегмента
unsigned nbytes;     количество байтов

Описание.
Функция movedata копирует nbytes байтов, начиная с исходного адреса, обозначенного srcseg:srcoff , в адрес результата, обозначенный destseg:destoff . Функция movedata предназначена для пересылки far -данных в программах малых или средних моделей, где адреса сегментов данных не известны. В программах больших моделей может быть использована функция memcpy , когда адреса сегментов известны.

Возвращаемое значение.
Возвращаемого значения нет.

Замечание!
Значения сегментов для аргументов srcseg и destseg могут быть получены с помощью применения либо функции segread , либо макроопределения FR_SEG.
Функция movedata не обрабатывает все случаи пересылок с перекрытием корректно (пересылки с перекрытием происходят тогда, когда часть результирующего поля является в этой же области памяти частью исходного). Пересылки с перекрытием корректно обрабатываются функцией memcpy.

Пример:

     #include <memory.h>
     #include <dos.h>
     char far *src;
     char far *dest;
     .
     .
     .
     /* следующие операторы пересылают 512
       ** байтов данных из src в dest. */
    
     movedata (FP_SEG (src), FPSEG(dest),
          FP_OFF(dest), 512);

Hosted by uCoz